// 视频推流
const { exec } = require('child_process')

function livePushRtmp ({ videoPath, livePath }) {
  console.log('推流开始!')
  const ffmpegCommand = 'ffmpeg -stream_loop -1 -re -i "' + videoPath + '" -c:v libx264 -preset veryfast -maxrate 3000k -bufsize 6000k -pix_fmt yuv420p -g 50 -c:a aac -b:a 160k -ar 44100 -ac 2 -f flv "' + livePath + '"'
  exec(ffmpegCommand, (error, stdout, stderr) => {
    if (error) {
      console.error(`执行的错误: ${error}`)
      return
    }
    console.log('推流结束!')
  })
}

module.exports = {
  run(options) {
    livePushRtmp(options)
  }
}

/*
-re：以原始视频速率读取数据，保持视频同步。

-i input.mp4：输入文件。

-c:v libx264：视频编码器使用H.264。

-preset veryfast：编码器预设，快速编码。

-maxrate 3000k：视频数据速率上限。

-bufsize 6000k：缓冲区大小。

-pix_fmt yuv420p：像素格式。

-g 50：I帧间隔。

-c:a aac：音频编码器使用AAC。

-b:a 160k：音频比特率。

-ar 44100：采样率。

-ac 2：声道数。

-f flv：输出格式。

-stream_loop 循环
*/